Injecting Content into Episodic Video Games

ABSTRACT

A hidden object video game having multiple episodes is played on a computing device. Periodically or upon reaching a milestone in the game, the computing device automatically connects with a server to update the game with data containing new episodes of the game and then disconnects from the server. The hidden object game continues to be played with the updated data after the disconnection.

BACKGROUND

Popular electronic video games include hidden object games. These hiddenobject games display objects hidden in a pictorial background in a gamewindow. A list containing hidden objects is simultaneously displayed ina textual or list window. The objective of the game is for the gameplayer to select the hidden objects in the game window until all theobjects on the list are found at which the game player can select a newgame window to find more objects.

In one embodiment of the game, an episodic mystery story is displayed.After displaying the mystery story, the game player finds objects in thegame to find clues appearing in the story. The game player may then findall the clues to solve mysteries.

Eventually the game player reaches the highest level of the game and thegame ends. If the game player wants more games, the player must downloadadditional games and start the story for that game from the beginning.

Illustrated in FIG. 1 is an exemplary display 100 of one scene of anexemplary hidden object video game. The display includes a game window102 and a list window 104. The game window 102 includes various objects,such as exemplary racket 106 a, key 106 b and car 106 c. The list window104 may include text 108 corresponding to the objects 106(a-c) in thegame window.

Illustrated in FIG. 2 is an exemplary process 200 for playing the hiddenobjects video game. The game is launched by the user (also referred toas a game player) in block 202. When the game is launched, textcontaining the plot of a mystery story is displayed to the game player.A background graphic along with various objects 106(a-c) are displayedin game window 102. In block 206, a list of objects 106(a-c) to be foundin the game window 102 are displayed in list window 104. In block 208, agame player using an input device finds and then selects one or more ofthe various objects 106(a-c) from the game window 102 corresponding toobjects in the list 108. The selected objects are removed from the list108 in block 210. An indication of the selection (such as by animatingand removing the object) is performed in response to selecting an objectin the game window 102.

In block 212, a determination is made whether all the objects have beenremoved from list 108. If not, the game player selects more objects fromthe list in block 208. If all objects have been removed, in block 214, adetermination is made whether there is a new list/graphics window inwhich the game player can select new objects. If there are newtext/list/graphics windows, a text window containing a continuation ornew episode of the story along with a new game window 102 and listwindow 104 are displayed, and blocks 204-212 are repeated. If there arenot any additional text, list and game windows, the game ends in block216.

SUMMARY

A method is described for enabling a game player to play an episodichidden object video game on a computing device. Upon reaching amilestone in the game, additional episodes are automatically requestedand received from a server. In one aspect of the playing the game, theadditional episodes are automatically providing by establishing aconnection between a computing device and the server, downloading a newepisodic content from the server, disconnecting the connection with theserver; and playing the game on the computer with the new episodiccontent after disconnecting the connection.

In another implementation of the game, a computer readable medium havinginstructions, which when executed by one or more processors, implement avideo game with a computing device. The instructions when executed byone or more processors in the computing device enable the play of ahidden object video game having multiple episodes. Upon reaching amilestone in the hidden object video game, one or more additional gameepisodes is automatically requested and received from a server in theform of a dynamic linked library (DLL). The DLL is downloaded into adatabase and retrieved during play of the game. In one implementation,the DLL is content such as text, background images and objects and donot include executable instructions so that only the content bedownloaded and not the entire program. The DLL content may be continuingepisodes of the existing story and may use game playing information,such as awards, when playing the hidden object game with the additionalgame episodes.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference number in different figures indicates similaror identical items.

FIG. 1 depicts an illustrative screen of a prior art version of thehidden object video game.

FIG. 2 depicts an illustrative process for playing the prior art hiddenobject video game on a computing device.

FIG. 3 depicts an exemplary system in which the injecting content intoan episodic hidden object video game may be implemented.

FIGS. 4-5 are illustrative processes executed by the computing devicefor injecting content into the episodic hidden object video game.

FIG. 6 is an illustrative process executed by a server computer devicefor injecting content into the episodic hidden object video game.

DETAILED DESCRIPTION

The following document describes method(s) or software capable ofinjecting content into a hidden object computer video game. The hiddenobject video game may be executed on any electronic device such as acomputer, PDA, computer laptop or gaming device. Various examples of thevideo game are described below with reference to FIGS. 1-6.

The construction of the video game and an environment in which thisvideo game may be enabled by techniques is set forth first below. Thisis followed by others sections describing various inventive techniquesand illustrative embodiments of other aspects of the video game.

Example System Architecture

The computer environment 300 illustrated in FIG. 3 is a general computerenvironment that includes a user interface which can provide a hiddenobject video game to a game player. Similar resources may use thecomputer environment and the processes as described herein. The computerenvironment 300 is only one example of a computer environment and is notintended to suggest any limitation as to the scope of use orfunctionality of the computer and network architectures. Neither shouldthe computer environment 300 be interpreted as having any dependency orrequirement relating to any one or combination of components illustratedin the exemplary computer environment 300.

The computer environment 300 includes a general-purpose computing devicein the form of a computing device 301 (also referred to as a clientcomputer). The computing device 301 can be, for example, one or more ofa stand alone computer, laptop computer, server, a networked computer, amainframe computer, a PDA, a telephone, a microcomputer ormicroprocessor, or any other computer device that uses a processor incombination with a memory. The components of the computing device 301can include, but are not limited to, one or more processors orprocessing units 302, a system memory 304, and a system bus (not shown)that couples various system components including the processor 302 andthe system memory 304.

System memory 304 can comprise a variety of computer readable media.Such media may be any available media that is accessible by thecomputing device 301 and includes both volatile and non-volatile media,and removable and non-removable media. The process for creating andplaying the video game can be stored as instructions sets on thecomputer readable media. The system memory 304 may include the computerreadable media in the form of non-volatile memory such as read onlymemory (ROM) and/or volatile memory such as random access memory (RAM).

The computing device 301 may also include other removable/non-removable,volatile/non-volatile computer storage media. By way of example, memory304 may include a hard disk drive (not shown) for reading from andwriting to a non-removable, non-volatile magnetic media (not shown), andan optical disk drive, for reading from and/or writing to a removable,non-volatile optical disk such as a CD-ROM, DVD-ROM, or other opticalmedia. The hard disk drive and optical disk drive may each be directlyor indirectly connected to the system bus.

Stored in memory 304, including by way of example, may be an operatingsystem (OS) 306, hidden object video game application 308 and database310. Stored in database 310 may be game content 312 that is used to playthe hidden object video game. Addition game content 314 may bedownloaded from server 324 and stored in database 310. Although gameapplication 308 and database 310 reside together as part of a singleapplication in a memory 304 of computing device 301, any combination ofsuch modules, tools, and data may reside on a memory of server 324,while other modules reside in computing device 301. The graphics andobjects to be inserted into the game may be stored in database 310 asgame content 312 and 314.

A player can enter commands and information into the computing device301 via input devices 318 Input devices 318 may be a keyboard and/or apointing device (e.g., a “mouse”), which send a signal to the computingdevice 301 in response to commands from the game player. Other inputdevices (not shown specifically) may include a microphone, joystick,game pad, satellite dish, serial port, scanner, and/or the like. Theseand other input devices are connected to the processing unit 302 viainput/output interfaces (not shown) that are coupled to the system busof computing device 301, but may be connected by other interface and busstructures, such as a parallel port, game port, or a universal serialbus (USB).

A monitor, flat panel display, or other type of computer display 316 canalso be connected to the system bus via a video interface (not shown),such as a video adapter. In addition to the computer display 316, otheroutput peripheral devices can include components such as speakers (notshown) which can be connected to the computing device 301.

The computing device 301 can operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer device 324 (also referred to herein as a “server”) throughnetwork adapter 320 via network 322. By way of example, the remotecomputer device 324 can be a personal computer, portable computer, aserver, a router, a network computer, a peer device or other commonnetwork node, game console, and the like. The remote computer device 324can include many or all of the elements and features described hereinrelative to the computing device 301. Specifically device 324 mayinclude memory that stores additional game content 326. Such additionalcontent 326 may include additional episodes in the hidden object gamefor transmission to computing device 301. When such additional gamecontent 326 is transmitted to computing device 301, the transmittedcontent is received by computing device 301 and stored as additionalgame content 314 in a dynamic linked library (DLL) in database 310.

Logical connections between the computing device 301 and the remotecomputer device (e.g. a service provider) are depicted as an Internet(or Intranet) which may include a local area network (LAN) and/or ageneral wide area network (WAN). Video game application 308 may beinitially stored on the server 324 and be downloaded from the internetonto memory 304 in computing device 301. Computing device 301 maycommunicate to the remote computer device using any CommunicationsMedia.

Various modules and techniques may be described herein in the generalcontext of the computer-executable instructions, such as programmodules, executed by one or more computers or other devices. Generally,program modules include routines, programs, control objects, components,control node data structures, etc. that perform particular tasks orimplement particular abstract data types. Often, the functionality ofthe program modules may be combined or distributed as desired in variousembodiments.

Operating system 306 manages the interaction between the variousapplications, modules and tools in memory 304 with memory 304 anddevices 316-320. Operating system may include a middleware interfacessuch as Flash by Adobe Inc. of San Jose, Calif. or Java by Sun Inc. ofSanta Clara, Calif. Game application 308 may communicate with theoperating system 306 directly or via the middleware interface.

During play of the computer game, game application 308 is launched andretrieves game content from a DLL in database 310. In one implementationof the episodic computer game, episodes and content is loaded from gamecontent module 312 and then from additional game content module 314 in astory sequence. The computing device 301 connects with server 324 vianetwork adapter 320 and network 322 to retrieve previously storedadditional game content 326. As the game player plays additional levelsof the game, the additional content 326 is downloaded from server 324.Such content 326 may be provided periodically or upon requests fromcomputing device 301. In one implementation, an executable program isresident in computing device 301 and non-executable data or content,e.g. the graphic images, objects and textual stories for the game, areprovided from server 324 as the additional game content 326. As theadditional game content 326 is created by the game developer, it isstored on server 324.

Example Process

The exemplary processes, shown in FIGS. 4-6, are illustrated as acollection of blocks in logical flow diagrams. The flow diagrams are anexemplary processes used by processor 301 (see FIG. 3), to injectcontent into episodic video games, and represents a sequence ofoperations that can be implemented in hardware, software, firmware, anda combination thereof. In the context of software, the blocks representcomputer-executable instructions that, when executed by one or moreprocessors, perform the recited operations. Generally,computer-executable instructions include routines, programs, objects,components, data structures, and the like that perform particularfunctions or implement particular abstract data types. The order inwhich the operations are described is not intended to be construed as alimitation, and any number of the described blocks can be combined inany order and/or in parallel to implement the process.

For discussion purposes, the processes are described with reference tocomputing device 301 of FIG. 3, although it may be implemented in othersystem architectures. The processes may be embedded on acomputer-readable media or memory. The computer-readable media can beany available media that can be accessed by a computing device toimplement the instructions stored thereon.

Depicted in FIG. 4 is a flowchart 400 illustrating an exemplarycomputing device process for playing and injecting new content into anepisodic video game. The computing device 301 determines base on anindication in block 402 whether there is new content available to bereceived. Such indication may be provided with or to the computingdevice 301 when the game player is not playing the game. In oneimplementation, the computing device 301 can determine if additionalgame content is available by the computing device 301 polling the server324. In response to the polling, server 324 provides an indication tocomputing device 301 that content is available. In anotherimplementation, the server 324 could send an indication to the computingdevice 301 via the network 322 using an RSS feed or other signallingmethods, such as a server push mechanism. If there is new game content(“yes” to block 402), the client computer establishes a connection withthe server 324 in block 502 (FIG. 5).

If there is no new game content available (“no” to block 402), thencomputing device 301 makes a determination whether there is anindication to play the game from the game player. Such indication may beprovided by the game player using the input device 318. If there is nogame play indication (“No” to block 404), then a determination is againmade whether there is new content in block 402. If there is anindication from the game player to play the game (“Yes” to block 404),then the game is played in block 406 using the method described in FIG.2.

While playing the game a determination is made whether a milestone hasbeen reached in the game in block 408. Such milestone may reached whenthe game player accomplishes a predetermined number episodes in thegame, when there is no more content available in the local database 310,when the game player chooses to obtain more content, when the gameplayer obtains a predetermined score while playing the game or when thegame player has been awarded a predetermined number of points or awards.In the case of an episodic hidden object game, the game player may reachthe milestone by accomplishing a predetermined number of episodes or byfinding a predetermined number of hidden objects. Choice of new contentmay be automatically selected by the game (when running on the server orthe client computer), or selected specifically by the game player.Indications provided upon reaching milestones may specify a linear,sequential progression or a branching, rules-based progression thoughthe content.

If the milestone is reached (“yes” to block 408), play continues by thecomputing device 301 connecting to server 324 in block 502. If themilestone is not yet reached (“no” to block 408), the game player maycontinue to play the game in block 406.

Referring to FIG. 5, the computing device 301 connects to server 324 vianetwork adapter 320 and network 322 in block 502. Such connection may bemade automatically by establishing socket connection using standardinternet or network protocols. Upon establishing a connection, thecomputing device 301 polls server 324 (or receives an indication fromserver 324) to determine whether additional game content 326 isavailable for download in block 504. Such additional game content maycomprise additional episodes, including story text, background imagesand objects to be found in a hidden object video game.

If no additional content is available (“no” to block 504), the computingdevice 301 determines if there is an indication to play the game inblock 404. If additional game content is available (“yes” to block 504),the computing device 301 requests and receives content from server 324in block 506. Such content may be stored as a sequence of episodes onserver 324 and downloaded into computing device 301 via network 322 andnetwork adapter 322. In one implementation, such episodes arecontinuations of previous episodes.

In block 508 the additional game content 326 is stored as data indatabase 310 as a dynamic link library or DLL, and formatted so that itcan be retrieved by game application 308. By storing the game content asa formatted DLL file, additional episodes of the game can be playedusing the existing game application without having to download new codefiles. Further the awards, tokens, objects, points and other informationobtained when the game player played the previous episodes can be savedin database 310 during the play of the game so that the game player canuse information from previous episodes when playing the new episodesalong with the additional game content 314. After storing the gamecontent in database 310, the computing device 301 disconnects from theserver in block 510. The computing device can continue to play thehidden object video game when disconnected from server 324 and network322 using the downloaded additional game content 314.

Illustrated in FIG. 6, is an exemplary process executed by server 324when providing content to the computing device 301 to inject suchcontent into the episodic video game. In block 602, the server maynotify the computing device 301 when content is available using themethods previously described. In block 604, the server connects with thecomputing device 301 in response to a connection request sent from thecomputing device 301. Such connection request may be made via network322. Upon connecting with the computing device 301, the server 324receives a request for additional game content in block 606. Suchrequest may indicate the episode level and/or version stored incomputing device 301. The server 324, in block 608, determines if suchgame content is available. The server may also determine which episodeshave previously been provided to computing device 301, and whether thecomputing device 301 has the latest available content. If the clientalready has the latest additional game content or no additional gamecontent 324 is available (“No” to block 608), the server 324 notifiesclient device in block 610 that the computing device 301 has the latestgame content and that no new game content with new episodes areavailable. The server 324 may also provide information about when newcontent will become available in the future and then indicated to thegame player via the computing device so that the game player knows whento play the game again with the new content.

If new additional game content is available, such additional gamecontent 326 is retrieved from server 324 memory in block 612 andtransmitted to computing device 301 in block 614. Such additional gamecontent 326, in server 324, may be periodically updated as a gamedeveloper develops the content and makes the content available. Theserver 324 may be updated by the game developer loading the additionalgame content on the server using conventional methods. Such additionalgame content may also be made available from a web site for manualdownloading to computing device 301. After transmitting the additionalgame content to the computing device 301 in block 614, or afternotifying the computing device 301 that no new content is available inblock 610, the server 324 transmits an indication of how long the clientshould wait before checking for more content, and then disconnects fromcomputing device 301 in block 616.

Conclusion

Above is described an apparatus and method for playing episodic hiddenobjects computer implemented video game. These and other techniquesdescribed herein may provide significant improvements over the currentstate of the art, to enable game play of the hidden objects game.Although the system and method has been described in language specificto structural features and/or methodological acts, it is to beunderstood that the system and method defined in the appended claims isnot necessarily limited to the specific features or acts described.Rather, the specific features and acts are disclosed as illustrativeforms of implementing the claimed system and method.

1. A method comprising: playing a hidden object video game havingmultiple episodes; upon reaching a milestone in the hidden object videogame, automatically requesting and receiving from a server additionalepisodes of the video game.
 2. The method as recited in claim 1, furthercomprising: playing the video game on a computer device; andautomatically providing the additional episodes by: establishing aconnection between the computing device and the server; downloading theepisode from the server; disconnecting the connection with the server;and playing the hidden object video game on the computer afterdisconnecting the connection.
 3. The method as recited in claim 1further comprising: playing the hidden object video game on a computerdevice; and storing the additional episodes in a database in a memory ofthe computing device so the game can be played when the computing deviceis disconnected from the server.
 4. The method as recited in game 1wherein the additional episodes of the game are received when a gameplayer is not playing the game.
 5. The method as recited in claim 1further comprising: providing points or awards for playing the game; andsupplying additional episodes when a game player receives apredetermined number of points or awards.
 6. The method as recited inclaim 5 further comprising using a reward provided from playing aprevious episode when playing game using the additional episode.
 7. Themethod s recited in claim 1 further comprising: storing in a datastorein a server on regular periodic intervals the additional episodescomprising new episodic content; notifying the computing device of theavailability of the new episodic content; and automatically receivingthe new episodic content from the datastore when available.
 8. Themethod as recited in claim 1 wherein the hidden object video gamecomprises a computer program the runs the video game, and wherein theadditional episode comprise a dynamic linked library (DLL) comprisingadditional game content, and wherein the DLL plugs into the computerprogram.
 9. The method as recited in claim 1 further comprising: storinga sequence of episodes of the game on server, and receiving theadditional episodes in a predetermined order relating to a plot of thegame.
 10. The method as recited in claim 1 wherein each episode has aplot, and wherein each of the additional received episodes have plotsthat are a continuation of the plot of the previous episode.
 11. Acomputer readable medium having instruction which when executed by oneor more processor implement a video game with a computing device, saidinstructions when executed by one or more processors comprise: playing ahidden object video game having multiple episodes; and upon reaching amilestone in the hidden object video game, automatically requesting andreceiving from a server one or more additional episodes of the videogame that comprises a dynamic linked data library which plugs into thecomputer program.
 12. The computer readable medium as recited in claim11, further comprising: playing the video game on the computer device;and automatically providing the additional episodes by: establishing aconnection between the computing device and the server; downloading theepisode from the server; disconnecting the connection with the server;and playing the hidden object video game on the computer afterdisconnecting the connection.
 13. The computer readable medium asrecited in claim 11, further comprising: playing the hidden object videogame on the computer device; and storing the additional episodes in adatabase in a memory of the computing device so the game can be playedwhen the computing device is not connected to the server.
 14. Thecomputer readable medium as recited in claim 11 wherein the additionalepisodes of the game is received when a game player is not playing thegame.
 15. The computer readable medium as recited in claim 11 furthercomprising: providing points or awards for playing the game; andsupplying additional episodes when game player receives a predeterminednumber of points or awards.
 16. The computer readable medium as recitedin claim 11 further comprising: storing a sequence of episodes of thegame on server; and receiving the additional episodes in a predeterminedorder relating to a plot of the game.
 17. A computing device to play avideo game, the computing device comprising: a video screen; an inputdevice; a processor; a memory comprising a datastore that includescontent related to the video game, the content comprising text of astory of the video game, background graphic design and partiallyobfuscated objects embedded in the background graphic design, and atextual list of items related to the story and corresponding to thepartially obfuscated objects; the memory comprising core programinstruction which when executed by the processor comprise: (a) retrievecontent from the data store; (b) display a text of a story on the videoscreen using the retrieved content; (c) display a background graphicdesign and partially obfuscated objects embedded in the backgroundgraphic design on the video screen using the retrieved content; (d)display on the video screen, a textual list of items related to thestory and corresponding to the partially obfuscated objects using theretrieved content; (e) receive a signal from the input device to selectthe partially obfuscated objects in the video screen; (f) provide anindication on the video screen as each of the partially obfuscatedobjects are selected; (g) upon reaching a milestone in the hidden objectvideo game, connecting with a server via a network; (h) upon connectingwith the server, requesting that one or more additional episodes of thevideo game be transmitted from the server to the computing device viathe network; (i) receiving content comprising additional episodes viathe network; (j) storing the received content as a dynamic link library(DLL) in a database; (k) disconnecting from the server; and (l)executing with the core program steps (a)-(f) using the stored receivedcontent stored in the DLL.
 18. The computing device as recited in claim17, wherein the core program instruction which when executed by theprocessor comprise: automatically upon reaching a milestone in thehidden object video game; connecting with a server via a network andrequesting that one or more additional episodes of the video game betransmitted from the server to the computing device via the network; andproviding episode level information and/or version information of thegame in the request.
 19. The computer readable medium as recited inclaim 17 further comprising: reaching a milestone in the hidden objectvideo game by completing episodes, wherein the episodes are completed byfinding partially obfuscated objects in the game.
 20. The computerreadable medium as recited in claim 17 further comprising: reaching amilestone in the hidden object video game when the game player receivesa predetermined number of points or awards.